home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 2 of 2).iso
/
cheats
/
eq_new
/
def
/
worldofx.bak
< prev
next >
Wrap
Text File
|
1995-03-11
|
11KB
|
471 lines
// This file is (C) 1994 - GLENN HANCOCK
DEFTITLE("Might & Magic IV & V: World of Xeen");
DIR("C:\XEEN");
PROGRAM("XEEN.exe");
REGISTEREDONLY;
UNIQUE("XEEN.CFG;XEEN.DAT;INTRO.CC;DARK.CC;");
DISKSOURCE;
GLENN;
SOURCEVERSION('100');
BACKGROUND("CLOUDS.BGP");
TEXTCOLOR(WHITE);
STRING FN,CNAME;
INT CLASS,Count,CharPos,NumOfChars,D,N,R,COff,SKILL,AWARD;
(*------------------------------------------------------------*)
PROC FSEL;
D := 0;
N := GetFileList($(100),"DARK*.SAV");
R := 100;
IF (N>0)
FreeList('Please Choose A SaveGame to Work On:');
VAR(R);
while D<N
D:=D+1;
Assign(99+D,$(99+D));
endwhile;
EndFreeList;
ENDIF;
IF (N=0)
MESSAGE('There are no SaveGames in your XEEN',
'directory. Please play World of XEEN'
'and save your game.');
Quit;
ENDIF;
FN := $(R);
Open(FN);
ENDPROC; // FSEL
(*------------------------------------------------------------*)
PROC GetNames;
Count := 0;
NumOfChars := ReadNum(14205,T_BYTE);
WHILE Count<NumOfChars
CharPos := ReadNum((14207+Count),T_BYTE);
$(150+Count) := (ReadStr(3585+(CharPos*354),T_C));
Count := (Count+1);
ENDWHILE;
ENDPROC; // GetNames
(*------------------------------------------------------------*)
PROC PAGE2;
N := 0;
COff := (COff-150);
N := READNUM((14207+COff),T_BYTE);
COff := (3585+(N*354));
CLASS := Readnum((COff+19),T_BYTE);
GOTOPAGE(2);
ENDPROC; // Page 2
(*------------------------------------------------------------*)
PROC ReadSkills;
INT Flag,Count,SOff;
Count := 0;
SOff := 39;
WHILE Count <= 18
Flag := Readnum(COff+SOff,T_BYTE);
If Flag = 0 Then $(200+Count) := "No";
If Flag = 1 Then $(200+Count) := "Yes";
SOff := (SOff+1);
Count := (Count+1);
ENDWHILE;
ENDPROC; // ReadSkills
(*------------------------------------------------------------*)
PROC EditSkill;
FREEFIELD("Do You Want This Skill?:");
Name(FN,(COff+39+SKILL),T_BYTE);
ASSIGN(0,"No","Yes");
Range(0,1);
ENDFREEFIELD;
GOTOPAGE(4);
ENDPROC; // EditSkill
(*------------------------------------------------------------*)
PROC ListSkills;
SKILL := 0;
LIST(' ');
VAR(Skill);
Assign(0,"Thievery "+$(200));
Assign(1,"Armsmaster "+$(201));
Assign(2,"Astrologer "+$(202));
Assign(3,"Body Builder "+$(203));
Assign(4,"Cartographer "+$(204));
Assign(5,"Crusader "+$(205));
Assign(6,"Direction Sense "+$(206));
Assign(7,"Linguist "+$(207));
Assign(8,"Merchant "+$(208));
Assign(9,"Mountaineer "+$(209));
Assign(10,"Navigator "+$(210));
Assign(11,"Pathfinder "+$(211));
Assign(12,"Prayer Master "+$(212));
Assign(13,"Prestidigitator "+$(213));
Assign(14,"Swimmer "+$(214));
Assign(15,"Tracker "+$(215));
Assign(16,"Spot Secret Door "+$(216));
Assign(17,"Danger Sense "+$(217));
ENDLIST;
BUTTON("Edit Skill"," ",EditSkill);
ENDPROC; // ListSkills
(*------------------------------------------------------------*)
PROC ReadAwards;
INT Flag,Count,AOff;
Count := 0;
AOff := 57;
WHILE Count <= 64
Flag := Readnum(COff+AOff,T_BYTE);
If Flag = 0 Then $(300+Count) := "No";
If Flag = 1 Then $(300+Count) := "Yes";
AOff := (AOff+1);
Count := (Count+1);
ENDWHILE;
ENDPROC; // ReadSkills
(*------------------------------------------------------------*)
PROC EditAward;
FREEFIELD("Do You Want This Award?:");
Name(FN,(COff+57+AWARD),T_BYTE);
ASSIGN(0,"No","Yes");
Range(0,1);
ENDFREEFIELD;
GOTOPAGE(4);
ENDPROC; // EditAward
(*------------------------------------------------------------*)
PROC ListAwards;
AWARD := 0;
LIST(' ');
VAR(AWARD);
Assign(0,"Vertigo Guild "+$(300));
Assign(1,"Nightshadow Guild"+$(301));
Assign(2,"River City Guild "+$(302));
Assign(3,"Asp Guild Member "+$(303));
Assign(4,"Winterkill Guild "+$(304));
Assign(5,"Shangri-la Guild "+$(305));
Assign(6,"Outstanding Cit. "+$(306));
Assign(7,"R.D. Badge of C. "+$(307));
Assign(8,"Convicted Thief "+$(308));
Assign(9,"War Zone Wins "+$(309));
Assign(10,"Super Explorer "+$(310));
Assign(11,"Master of Golems "+$(311));
Assign(12,"Taxman Emeritus "+$(312));
Assign(13,"Rescued Crodo "+$(313));
Assign(14,"Found Shangri-la "+$(314));
Assign(15,"Prince of Thieves"+$(315));
Assign(16,"Ghost Slayer "+$(316));
Assign(17,"Legendary "+$(317));
Assign(18,"Rescued Celia "+$(318));
Assign(19,"Helped Orathin "+$(319));
Assign(20,"Restored Falista "+$(320));
Assign(21,"Turned Seasons "+$(321));
Assign(22,"Helped Carlawna "+$(322));
Assign(23,"Helped Falagar "+$(323));
Assign(24,"Restored Mirabeth"+$(324));
Assign(25,"Helped Danulf "+$(325));
Assign(26,"Saved Elves "+$(326));
Assign(27,"Civilized One "+$(327));
Assign(28,"Help Capt. Nystor"+$(328));
Assign(29,"Liberated Pagoda "+$(329));
Assign(30,"Fisher''s Friend "+$(330));
Assign(31,"Helped Arie "+$(331));
Assign(32,"Freed Ligona "+$(332));
Assign(33,"Helped Glom "+$(333));
Assign(34,"Helped Halon "+$(334));
Assign(35,"Princess'' Friend "+$(335));
Assign(36,"Appeased Barok "+$(336));
Assign(37,"Loremaster Worms "+$(337));
Assign(38,"Loremaster Liz. "+$(338));
Assign(39,"Loremaster Serp. "+$(339));
Assign(40,"Loremaster Drake "+$(340));
Assign(41,"Loremaster Drag. "+$(341));
Assign(42,"DEFEATED XEEN "+$(342));
Assign(43,"Master of Words "+$(343));
Assign(44,"Drawcab Brother "+$(344));
Assign(45,"Chosen One "+$(345));
Assign(46,"Disciple of Bark "+$(346));
Assign(47,"Cartog. Challange"+$(347));
Assign(48,"Merch. Challange "+$(348));
Assign(49,"Superior Intel. "+$(349));
Assign(50,"Helped Dreyfus "+$(350));
Assign(51,"Returned Stats. "+$(351));
Assign(52,"Drawcab Extraord."+$(352));
Assign(53,"Enchanted Bridle "+$(353));
Assign(54,"Helped Kramer "+$(354));
Assign(55,"Helped Vesper "+$(355));
Assign(56,"Fed Nibbler "+$(356));
Assign(57,"Rescued Sprite "+$(357));
Assign(58,"Taste Tester Roy."+$(358));
Assign(59,"Helped Ector "+$(359));
Assign(60,"Fountain of Youth"+$(360));
Assign(61,"Awakened Fire "+$(361));
Assign(62,"Awakened Air "+$(362));
Assign(63,"Awakened Earth "+$(363));
XYOVERRIDE(350,55);
ENDLIST;
BUTTON(350,180,"Edit Award"," ",EditAward);
ENDPROC; // ListAwards
(*------------------------------------------------------------*)
PROC SpellButton;
INT SOFF,YN;
SOFF := 121;
IF ((CLASS = 1) OR (CLASS = 2) OR (CLASS = 3) OR (CLASS = 4) OR (CLASS = 8) OR (CLASS = 9))
YN := MESSAGEYN('This Button will permanently give this'
'Character every spell he or she can have.'
'Once you press this button you cannot go'
'back to what spells you had. Press YES to'
'continue and NO to return to editing'
'without changing your current spells.');
IF YN = 1
WHILE SOff <= 160
WRITENUM(COff+SOff,T_BYTE,1);
SOff := (SOff+1);
ENDWHILE;
MESSAGE('This character now has every spell they can');
ENDIF;
IF YN = 0 THEN MESSAGE('Your character has not changed');
ENDIF;
IF ((CLASS = 0) OR (CLASS = 5) OR (CLASS = 6) OR (CLASS = 7))
MESSAGE('You Wish.','Sorry this character can''t cast magic.');
GOTOPAGE(4);
ENDIF;
ENDPROC; // SpellButton
(*------------------------------------------------------------*)
FSEL;
GetNames;
PAGE(1);
SETTITLE("World of Xeen");
FIELDSTART(100);
Count := 0;
COff := 150;
List('Choose a Character to Edit:');
VAR(COff);
ADDLIST($(150),NumOfChars);
EndList;
BUTTON("Edit Character"," ",PAGE2);
FIELDSTART(140);
FIELDSPACE(45);
FIELD("Party Gold");
NAME(FN,14843,T_WORD);
INC(100);
ENDFIELD;
FIELD("Party Gems");
NAME(FN,14847,T_WORD);
INC(100);
ENDFIELD;
FIELD("Party Food");
NAME(FN,14823,T_WORD);
INC(100);
ENDFIELD;
NEXTPAGE(1);
ENDPAGE; // 1
Page(2);
SETTITLE( 'Editing Character: '+CNAME+'');
FIELDSPACE(50);
Field("Might");
Name(FN,(COff+20),T_BYTE);
RANGE(0,200);
EndField;
Field("Intelligence");
Name(FN,(COff+22),T_BYTE);
RANGE(0,200);
EndField;
Field("Personality");
Name(FN,(COff+24),T_BYTE);
RANGE(0,200);
EndField;
Field("Endurance");
Name(FN,(COff+26),T_BYTE);
RANGE(0,200);
EndField;
Field("Speed");
Name(FN,(COff+28),T_BYTE);
RANGE(0,200);
EndField;
Field("Accuracy");
Name(FN,(COff+30),T_BYTE);
RANGE(0,200);
EndField;
Field("Luck");
Name(FN,(COff+32),T_BYTE);
RANGE(0,200);
EndField;
ENDPAGE; // 2
PAGE(3);
SETTITLE( 'Editing Character: '+CNAME+'');
FIELDSTART(100);
Field("Hit Points");
Name(FN,(COff+342),T_WORD);
RANGE(0,5000);
EndField;
IF ((CLASS = 1) OR (CLASS = 2) OR (CLASS = 3) OR (CLASS = 4) OR (CLASS = 8) OR (CLASS = 9))
Field("Spell Points");
Name(FN,(COff+344),T_WORD);
RANGE(0,5000);
EndField;
ENDIF;
IF ((CLASS = 0) OR (CLASS = 5) OR (CLASS = 6) OR (CLASS = 7))
Field("Spell Points");
ASSIGN(0,"N/A");
RANGE(0,0);
EndField;
ENDIF;
Field("Experience Points");
Name(FN,(COff+348),T_LONG);
RANGE(0,20000000);
INC(100);
EndField;
ENDPAGE; // 3
PAGE(4);
SETTITLE( 'Editing Character: '+CNAME+'');
ReadSkills;
ReadAwards;
ListSkills;
ListAwards;
BUTTON(195,230,"All Spells"," ",SpellButton);
ENDPAGE; // 4
ABOUT
^4^*^UWorld of Xeen^U
This is both Might & Magic four and five put
together on your hard drive. To do this,
simply install Darkside, and select World of
Xeen from the install menu. Be prepared for
a great deal of quests to perform. Many are
unique to World of Xeen, and only appear when
the two games are merged together.
Features of this DEFinition include:
- Max out all your stats.
- Give yourself every skill without having
to find out how and where to get them.
- Finnish neccessary tasks and win the awards
without actually going anywhere, (except
the Equalizer of course.)
- Give yourself every single spell your
character is capable of having.
- Edit the amount of money and gems your
party is carrying.
^4Copyright (C)1994
^4New World Computing Inc.
^U
^P"YSSgh.PCC"
ENDABOUT;
DIALOG("001");
^E^UAttributes with Two Fields^U
All attributes that have two fields show
current and maximum values. Current on the
left, and out of on the right.
eg. 99/100 would be 99 points out a maximum
of 100 points.
ENDDIALOG;